package project_studentmanager_test;

/**
 * Student 类：表示学生的实体对象，包含学生的基本属性和相应的访问方法。
 */
public class Student {
    /**
     * 学生编号，唯一标识
     */
    private int id;

    /**
     * 学生姓名
     */
    private String name;

    /**
     * 学生年龄
     */
    private int age;

    /**
     * 学生性别
     */
    private String sex;

    /**
     * 无参构造方法：用于创建一个空的 Student 对象。
     * 适合于先创建对象再通过 setter 方法逐个设置属性的场景。
     */
    public Student() {
    }

    /**
     * 带参构造方法：用于创建一个属性完整的 Student 对象。
     *
     * @param id   学生编号
     * @param name 学生姓名
     * @param age  学生年龄
     * @param sex  学生性别
     */
    public Student(int id, String name, int age, String sex) {
        this.id = id;       // 将传入的 id 参数赋值给当前对象的 id 属性
        this.name = name;   // 将传入的 name 参数赋值给当前对象的 name 属性
        this.age = age;     // 将传入的 age 参数赋值给当前对象的 age 属性
        this.sex = sex;     // 将传入的 sex 参数赋值给当前对象的 sex 属性
    }

    /**
     * 获取学生编号的方法。
     *
     * @return 当前对象的 id
     */
    public int getId() {
        return id;
    }

    /**
     * 设置学生编号的方法。
     *
     * @param id 要设置的学生编号
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * 获取学生姓名的方法。
     *
     * @return 当前对象的 name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置学生姓名的方法。
     *
     * @param name 要设置的学生姓名
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取学生年龄的方法。
     *
     * @return 当前对象的 age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置学生年龄的方法。
     *
     * @param age 要设置的学生年龄
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取学生性别的方法。
     *
     * @return 当前对象的 sex
     */
    public String getSex() {
        return sex;
    }

    /**
     * 设置学生性别的方法。
     *
     * @param sex 要设置的学生性别
     */
    public void setSex(String sex) {
        this.sex = sex;
    }
}